package cn.xenosp.server.web.controller;

import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.util.StrUtil;
import cn.xenosp.server.common.Constant;
import cn.xenosp.server.common.Result;
import cn.xenosp.server.common.annotation.LogInfo;
import cn.xenosp.server.common.cache.Cache;
import cn.xenosp.server.module.login.entity.LoginVo;
import cn.xenosp.server.module.login.service.LoginService;
import cn.xenosp.server.module.user.entity.SysUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;

/**
 * 项目名： service-web
 * 包路径： cn.xenosp.server.web.controller
 * 作者：   TongHui
 * 创建时间: 2024-08-25 13:10
 * 描述: TODO
 * 版本: 1.0
 */
@RestController
@RequestMapping("${app.config.api-base-url}")
public class LoginController {

    @Autowired
    Cache redisCache;
    @Autowired
    LoginService loginService;


    @LogInfo(operationModuleType = "登录模块",operationName = "用户登录",operationContent = "用户登录",isLogin = true)
    @PostMapping("/login")
    public Result login(@RequestBody LoginVo loginVo){
        try {
            return loginService.login(loginVo);
        }catch (Exception e){
            e.printStackTrace();
            loginVo.setPassword("");
            return Result.error("登录失败",loginVo);
        }
    }

    // 查询登录状态，浏览器访问： http://localhost:8081/user/isLogin
    @GetMapping("isLogin")
    public Result isLogin() {
        return Result.OK("当前会话是否登录：" + StpUtil.isLogin(),"");
    }


    @PostMapping("/logout")
    public Result logout(){
       try {
           return loginService.logout();
       }catch (Exception e){
           e.printStackTrace();
           return Result.error("服务错误","");
       }
    }
}
